The present invention relates to file control devices for controlling external memory devices in information processing systems, and particularly to a file control device for controlling a plurality of disk type memory devices.
In a typical information processing system, a disk sub-system including a plurality of magnetic disk drives and a file or disk control device for controlling the disk drives is normally employed as an external memory system. The disk control device accesses a designated magnetic disk drive in accordance with an access request from a host apparatus. In response, the accessed disk control device transfers the requested data to the host apparatus via the disk control device. Thus, it is highly desirable to have a disk control device which efficiently controls the data transfer between the disk drives and the host apparatus, particularly in view of the rapid progress in the information processing field.
With respect to the structure of the known file or disk control devices, they are typically divided into a plurality of function modules. One such known structure is shown in FIG. 9, and generally indicated at 101. The disk control device 101 is connected between a plurality of host apparatus 102 (one shown) and a plurality of disk drives 103, and enables the host apparatus to access the disk drives. Any of the disk drives 103 can be used in common by the host apparatus 102 by using the disk control device 101.
The disk control device 101 is divided into an xe2x80x9caxe2x80x9d group and a xe2x80x9cbxe2x80x9d group, for example. These groups are electrically isolated from each other, but include the same function modules which perform duplicate operations to protect the information processing system against failures. Thus, the description of the function modules generally applies equally to both groups and are made without specifying the particular group to which they belong.
Each of the host apparatus 102 is connected to a corresponding channel adapter (CA) 104 provided in the disk control device 101. The channel adapter 104 transfers data between the host apparatus 102 and a share storage (SS) 105 which stores the data transferred between the host apparatus 102 and the disk drives 103, in accordance with commands issued by the host apparatus. In other words, the share storage 105 is generally used as a cache memory for temporarily storing data to be stored in the disk drives 103 or to be retrieved from the disk drives.
Data is stored in the share storage 105 via the channel adapters 104 when the data is received from the host apparatus 102, or via device adapters (DA) 106 when received from the disk drives 103. The channel adapter 104 checks, when the host apparatus 102 requests a particular data, whether the object data exists in the cache memory, i.e., in the share storage 105. The data stored in the cache memory is managed by cache function engines (CFE) 107a, 107b, which are respectively connected to common buses 108a, 108b. The cache function engines 107a, 107b, from both group xe2x80x9caxe2x80x9d and group xe2x80x9cbxe2x80x9d are connected in common to a cache table storage (CTS) 112 which maintains a list of data stored in the cache memory for both groups. By referring to the cache table storage 112, the cache function engine 107 judges whether the data inquired by the channel adapter 104 exists in the cache memory, and then notifies the result to the channel adapter 104. If the object data exists in the cache memory, i.e., in the share storage 105, the channel adapter 104 transfers the data to the host apparatus 102 from the cache memory.
On the other hand, if the object data does not exist in the share storage 105, the object data must first be stored in the share storage. Thus, upon receiving a response from the cache function engine 107 that the object data is not stored in the cache memory, the channel adapter 104 makes a request to a resource manager (RM) 109 to store the data in the cache memory. This request is also made through the bus 108. The resource managers 109a, 109b from both groups xe2x80x9caxe2x80x9d and xe2x80x9cbxe2x80x9d are connected in common to a resource table storage (RTS) 113, which maintains the data regarding the disk drives 103 which are connected to and under the control of the control device 101, and the arrangement of data in those disk drives.
By referring to the resource table storage (RTS) 113, the resource manager 109 identifies the particular disk drive 103 in which the data requested by the channel adapter 104 is stored and the corresponding device adapter 106 which is connected to the identified disk drive. Thereafter, the resource manager 109 requests the device adapter 106 to store the object data to the cache memory or share storage 105 . Upon receiving the request from the resource manager 109, the disk adapter 106 instructs the disk drive 103 which has the object data to transfer the data to the cache memory. The disk adapter 106 also inquires the cache function engine 107 for an area in the cache memory where the object data can be stored.
In response, the cache function engine 107 searches for a vacant area in the cache memory by referring to the cache table storage 112, and notifies the device adapter 106 of the available storage area. The device adapter 106 then transfers the data from the disk drive 103 to the area specified by the cache function engine 107. When the transfer of the object data is completed, the disk drive 103 notifies the disk adapter 106. Once the device adapter 106 stores all the object data in the cache memory, it then notifies the cache function engine 107 and the resource manager 109 of the completion of the data transfer. The cache function engine 107 then updates the cache table storage 112 to reflect the storage of the object data in the cache memory.
Meanwhile, the resource manager 109, which has received a message from the device adapter 106 that the object data has been transferred to the cache memory, notifies this event to the channel adapter 104, which then inquires the cache function engine 107 again whether the object data is stored in the cache memory. In response, the cache function engine 107 again refers to the cache table storage 112 and judges whether the data inquired by the channel adapter 104 is stored in the cache memory or not, and then sends a message to channel adapter 104. Here, since the object data has been stored in the cache memory by the device adapter 106, the cache function engine 107 notifies the channel adapter 104 that the object data is stored in the cache memory. Upon receiving this notification, the channel adapter 104 transfers the data to the host apparatus 102 from the cache memory, thereby completing the response to the data request from the host apparatus.
Each of the groups xe2x80x9caxe2x80x9d and xe2x80x9cbxe2x80x9d is also provided with service adapters (SA) 110 for conducting maintenance of each function module in their respective groups. The service adapter 110 sends data informing about a structure of the disk control device 101 to each function module, and conducts boot process and diagnostic process for each module also. The service adapter 110 is provided with a discrete disk drive 111 for storing various kinds of data necessary for performing the maintenance functions.
As the information processing systems grow to accommodate a greater number of host apparatus and disk drives, occurrences of disk control device failures resulting in the stoppage of the entire system become a very important problem. The file control devices 101 of the type described above, which have a structure that can be divided into duplicate groups, are effective in preventing system stoppage which occurs as a result of file control device failures. In the file control device of FIG. 9, the channel adapter 104a, the device adapter 106a and the share storage 105a of function group xe2x80x9caxe2x80x9d are all connected to the common bus 108a, but not to the common bus 108b, which is electrically isolated from the bus 108a. As such, the modules 104a-111a in group xe2x80x9caxe2x80x9d are also electrically isolated from the modules 104b-111b in group xe2x80x9cb.xe2x80x9d Therefore, if a destructive failure is generated in any of the modules in any one group, the failure is localized to that group only, so that the other group can still operate the file control device 101.
Since the advent of the above-described file or disk control devices, the average number of the channel adapters 104 and the device adapters 106 provided in the file control device have increased dramatically to accommodate a greater number of host apparatus and disk drives that are connected to the file control devices. Accordingly, the cache table storage 112 and the resource table storage 113 are accessed more frequently to update the management information between the host apparatus 101 and the disk drives 103. In the conventional disk drives, however, only one cache table storage 112 and one resource table storage 113 are provided for both groups xe2x80x9caxe2x80x9d and xe2x80x9cb.xe2x80x9d Consequently, there is often a bottle-neck at the cache table storage 112 and/or the resource table storage 113. Thus, there is a need for a file control device which is not susceptible to bottle-necks at the cache table storage 112 and/or the resource table storage 113.
Accordingly, one object of this invention is to provide a new and improved file control device.
Another object is to provide a new and improved file control device which do not cause bottle-necks during the access and the updating of management information tables.
Yet another object is to provide a new and improved file control device which has a management information table for each group, so that the bottle-necks can be eliminated.
In keeping with one aspect of this invention, a file control device adapted to be connected between at least one host apparatus and a plurality of memory devices includes at least one channel adapter connected to the host apparatus for transferring data to and from the host apparatus and a plurality of device adapters connected to the memory devices for transferring data to and from the memory devices. A plurality of resource management modules is also included for controlling the channel adapter, the device adapter and the memory devices. A common memory stores management data for controlling the memory devices and a resource sharing program designates the management of the memory devices between the resource management modules. Also, an area determining program determines the areas in the common area in which to store the management data of the memory devices in accordance with the management designation of the resource sharing program.